package com.xbongbong.pro.enums.log.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import java.util.Arrays;
import java.util.List;
import lombok.Getter;

/**
 * 通过该枚举控制需要获取哪些参数容器 @see DetailLogParamPojo
 * @author zcp
 * @date 2019/8/14
 * @since v1.0
 * @version v1.0
 */
@Getter
public enum DetailLogParamEnum {

    /**
     * 需要获取员工容器：userMap
     */
    USER(1, "enum.detailLogParam.name.user"),
    /**
     * 需要获取部门容器：departmentMap
     */
    DEPARTMENT(2, "enum.detailLogParam.name.department"),
    /**
     * 需要获取角色容器：roleMap
     */
    ROLE(3, "enum.detailLogParam.name.role"),
    ;

    /**
     * 枚举值 --
     */
    private final int code;
    /**
     * 枚举信息--中文名称
     */
    private final String name;

    DetailLogParamEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 只获取员工、部门容器
     * @return java.util.List<com.xbongbong.pro.enums.log.enums.DetailLogParamEnum>
     * @author zcp
     * @date 2019/8/14 14:38
     * @update 2019/8/14 14:38
     * @since v1.0
     * @version v1.0
     */
    public static List<DetailLogParamEnum> getEnumList4UserDep(){
        return Arrays.asList(USER, DEPARTMENT);
    }

    /**
     * 获取员工、部门、角色容器
     * @return java.util.List<com.xbongbong.pro.enums.log.enums.DetailLogParamEnum>
     * @author zcp
     * @date 2019/8/14 14:38
     * @update 2019/8/14 14:38
     * @since v1.0
     * @version v1.0
     */
    public static List<DetailLogParamEnum> getEnumList4All(){
        return Arrays.asList(USER, DEPARTMENT, ROLE);
    }

    public String getName() {
        return I18nMessageUtil.getMessage(name);
    }
}
